package com.flow.demo.module.gd.service.address;

import com.flow.demo.module.gd.controller.admin.address.vo.*;
import com.flow.demo.module.gd.dal.dataobject.address.AddressDO;
import com.flow.demo.framework.common.pojo.PageResult;
import com.flow.demo.framework.common.pojo.PageParam;

import javax.validation.Valid;

/**
 * 收获地址 Service 接口
 *
 * @author Pompey_hpy
 */
public interface AddressService {

    /**
     * 创建收获地址
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Integer createAddress(@Valid AddressSaveReqVO createReqVO);

    /**
     * 更新收获地址
     *
     * @param updateReqVO 更新信息
     */
    void updateAddress(@Valid AddressSaveReqVO updateReqVO);

    /**
     * 删除收获地址
     *
     * @param id 编号
     */
    void deleteAddress(Integer id);

    /**
     * 获得收获地址
     *
     * @param id 编号
     * @return 收获地址
     */
    AddressDO getAddress(Integer id);

    /**
     * 获得收获地址分页
     *
     * @param pageReqVO 分页查询
     * @return 收获地址分页
     */
    PageResult<AddressDO> getAddressPage(AddressPageReqVO pageReqVO);

}